Просмотр полной версии : Замена CSS в кэше браузера
swing1991
30.03.2011, 22:43
У меня на сайте есть 10 вариантов дизайна,для каждого свой css,есть тулбар свой,мне нужно сделать букмарклет javascript(Ну тоесть типа javascript:void(alert("!!")); ) для замены браузерского css (как в опере,замена стиля на свой в настройках сайта) ...Заранее спасибо...
Не непонятно нифига)
Выстрел в небо:
javascript:document.getElementsByTagName('head')[0].appendChild(document.createElement('style')).inne rHTML=prompt('CSS?','*{padding:0;margin:0}');void( 0)
swing1991
31.03.2011, 18:22
У меня есть строка
<link rel="stylesheet" type="text/css" href="/css/1.css" />
Мне нужно чтобы при вводе в адресную строку скрипта,менялась эта css и сохранялась,хотя-бы для чистки кэша...
P.S.
Прошу также объяснить ваш код,я пойму,имею большой опыт работы с ActionScript...Заметил что они очень похожи...
сохранялась,хотя-бы для чистки кэша...
Вот это непонятно, а в остальном, думаю, нужно просто изменить href в нужном <link>. Тип того:
javascript:document.getElementById('someLink').hre f = 'css/newC.css';void true;
monolithed
31.03.2011, 18:59
swing1991, где-то я уже это делал, полистайте мои сообщения по слову cookie
swing1991
31.03.2011, 19:20
javascript:document.getElementById('someLink').hre f = 'css/newC.css';void true;
Я так понимаю "someLink" это ссылка с которой надо заменить...попытался сделать...не реагирует...
1. Кэш чистить надо стандартными средствами.
2. Все ёще непонятно:
-Что значит сохранялась? Сохраняться она будет до первой же перезагрузки страницы.
-При чем тут кэш?
swing1991
31.03.2011, 19:39
Кэш я умею чистить,извините там опечатка не "для чистки кэша",а "до чистки кэша" ...тогда мне нужны варианты замены css с последующем сохранением...
Кэш тут имеет прямое значение.Кэш css файлов после перезагрузки страницы не меняется...проверенно...
----------------------------------------
В опере например можно указать свою таблицу стилей для сайта...может можно изменить эту таблицу посредством JavaScript
Да ***, что значит сохраняло?
На текущей странице, на диск, в кэше, на сервере, в вечной памяти?
На чистом js возможен только первый вариант.(ну и куки ещё, со всякой html5 хренью, но не об этом речь)
Возможно вам нужен userscript/usercss?
swing1991
31.03.2011, 20:27
Епт...
Сохраняло в кэше...
нет userscript/usercss не подойдет...мне нужно чтобы юзер выполнив скрипт из адресной строки браузера(скрипт должен загружать другой сss),сменил дизайн сайта!Надо обойтись как-то без заморочек...без всяких скачиваний,мего операций...
swing1991,
javascript:function z(){var h=document.getElementsByTagName('head').item(0);va r s=document.createElement('link');s.setAttribute('t ype','text/css');s.setAttribute('rel','stylesheet');s.setAttr ibute('href','http://assets.harkeydesign.net/css/diagnose.css');h.appendChild(s);}z();
javascript:document.getElementsByTagName('link')[0].href="new.css";void(0)
[0] - 1,2,3 - в зависомости от колличества link и позиции нужной.
swing1991
31.03.2011, 20:54
swing1991,javascript:function z(){var h=document.getElementsByTagName('head').item(0);va r s=document.createElement('link');s.setAttribute('t ype','text/css');s.setAttribute('rel','stylesheet');s.setAttr ibute('href','http://assets.harkeydesign.net/css/diagnose.css');h.appendChild(s);}z();
Спасибо!То что нужно!
swing1991
31.03.2011, 21:36
Только вот верно говорили,не сохраняет...почему только не понимаю
Может вы за своими непонятными просьбами имели ввиду:
дать пользователям возможность менять дизайн вашего сайта, с запоминаием.
Пример:
http://javascript.info/play/EtIUfc
Выберите цвет и понажимайте Click to View - все сохраняется.
Использовалось:
http://javascript.ru/unsorted/top-10-functions#3-2-i-1-getcookie-setcookie-deletecookie
Только вот верно говорили,не сохраняет...почему только не понимаю
А с хрена бы ему сохранять. JS меняет текущий активный код страницы, тот самый что генерируется браузером прямо сейчас. Работа js вообще нигде никаким образом сама по себе не сохраняется.
swing1991
31.03.2011, 22:38
Не знал...
А какие еще методы запоминания есть...?Не имею возможности вставить код с получением куков...
document.write('<link rel="stylesheet" type="text/css" href="' + ( getCookie('css')||'default.css' ) + '" />')
можно использовать localStorage. можно использовать sessionStorage. можно исползовать window.name, даже хранилище Flash (тут уже хз)
в общем, вот ->>> http://javascript.ru/unsorted/storage
А можно использовать те же cookie в букмарклете.
javascript:alert(document.cookie)
зато в печеньках нельзя хранить данные по 2мб :)
swing1991
31.03.2011, 23:04
А можно использовать те же cookie в букмарклете.
javascript:alert(document.cookie)
Так а что это мне даст?Я 1 раз использую букмарклет,а дальше мне необходимо лазить по сайту с новым дизайном...
Так а что это мне даст?Я 1 раз использую букмарклет,а дальше мне необходимо лазить по сайту с новым дизайном...
ну тогда лучше делать это через AJAX, PHP и BD.
это сурово. а еще очень тяжело для бд, каждым запросом выяснять, что именно вашему айпишнику соответствует именно style.css, а не style2.css.
а что такого страшного в печеньках?
ну поставится она на корень домена, ну будет мешаться при каждом запросе. зато никаких морок с sessionStorage и другим новеньким говнецом)
swing1991
31.03.2011, 23:22
А можно использовать те же cookie в букмарклете.
javascript:alert(document.cookie)
ну тогда лучше делать это через AJAX, PHP и BD.
это сурово. а еще очень тяжело для бд, каждым запросом выяснять, что именно вашему айпишнику соответствует именно style.css, а не style2.css.
а что такого страшного в печеньках?
ну поставится она на корень домена, ну будет мешаться при каждом запросе. зато никаких морок с sessionStorage и другим новеньким говнецом)
Нет,если бы имел возможность,давно-бы с БД поработал...или с куками...
не имеете возможности работать с куками?
то есть?
с бд это бред, лучше его даже не рассматривать... это то же самое,что и хранить картинки в бд ( бывает :) )
swing1991
01.04.2011, 00:15
Я ни с 1 ,не с другим не имею возможности работать...
Вы хотите сделать букмарклет, подключающий выбранный css к чужому сайту и запоминающий выбор.
Обломитесь. Не для того js придуман.
Что-то похожее можно изобразить, через window.open() создав дочернее окно, и обращаясь обратно чeрез window.parent, по setTimeout'y отслеживать не изменилась ли страница, и коли да - заново править css. Будет работать до тех пор пока не уйдут со страницы.
swing1991
01.04.2011, 18:21
Вай...для меня это сложновато,ща буду читать документацию...
Я не силен в js и практически не работал с ними, но как ни странно я смог написать js, который не просто подключает к чужому сайту css файл, но и может сохранять в куках браузера выбранный стиль.
Это же просто, народ. =)
Если еще нужно, обращайтесь:
pase[восемь][ноль][собака]ya.ru
сорри за такое мыло ) Не хочу спама роботами.
Магический код в студию. Если он конечно отличен от моего предложения.
На отладку всего кода в целом у меня ушел весь день, так что извините, просто так отдавать его не хочется и сделан он очень криво(потому что я не знаю многих прибамбасов js) - не хочу позориться.
И я не просто сделал применение своих css стилей к чужому сайту, но и "создал" страничку, на которой эти самые стили можно выбрать(после выбора идет сохранение в куки), а потом уже стиль применяется в зависимости от того, какие там куки сохранены. Они живут 10 лет, поэтому не беспокоюсь о том, что каждый раз придется заходить на эту страницу.
Алгоритм разработал сам, отладил и настроил всё сам, собрав некоторые функции с форумов. Поэтому дерзайте, у вас то ума гораздо больше, чем у меня. Я всего лишь школьник.
Кстати, свои js, а значит и стили, можно применить практически во всех популярных браузерах.
И еще - не советую отвечать именно мне на мои комментарии, ибо я тут зарегистрировался только для того, чтобы похвастать и сказать народу, что это всё таки возможно. :p
что это всё таки возможно.
доказательство, предоставьте... уж нам без разницы, говеный код получился или нет. Мы поправим, сделаем красивым. А так это пустой пердеж ничего не доказывающий.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot